package pojo

import dom "a-common/domain"

// SysLogininfor 登录日志表
type SysLogininfor struct {
	Timestamp     int64  `json:"timestamp,omitempty"`     // 时间戳
	UserName      string `json:"userName,omitempty"`      // 用户账号
	UserType      string `json:"userType,omitempty"`      // 账号类型(web、app)
	Ipaddr        string `json:"ipaddr,omitempty"`        // 登录IP地址
	LoginLocation string `json:"loginLocation,omitempty"` // 登录地点
	Browser       string `json:"browser,omitempty"`       // 浏览器类型
	Os            string `json:"os,omitempty"`            // 操作系统
	Status        int    `json:"status,omitempty"`        // 请求状态码
	Msg           string `json:"msg,omitempty"`           // 提示消息
	LoginTime     string `json:"loginTime,omitempty"`     // 访问时间
}

// SysLogininforVo 映射
type SysLogininforVo struct {
	// InfoId        int64  `json:"infoId,omitempty" xorm:"pk"`
	UserName      string `json:"userName,omitempty"`
	UserType      string `json:"userType,omitempty"` // 账号类型(web、app)
	Ipaddr        string `json:"ipaddr,omitempty"`
	LoginLocation string `json:"loginLocation,omitempty"`
	Browser       string `json:"browser,omitempty"`
	Os            string `json:"os,omitempty"`
	Status        string `json:"status,omitempty"`
	Msg           string `json:"msg,omitempty"`
	LoginTime     string `json:"loginTime,omitempty"`
}

// SysLogininforPageVo 页面
type SysLogininforPageVo struct {
	SysLogininforVo `xorm:"extends"`
}

// SysLogininforDto 传输
type SysLogininforDto struct {
	SysLogininforPageVo
	OrderByColumn string        `json:"orderByColumn,omitempty"`
	IsAsc         string        `json:"isAsc,omitempty"`
	Params        dom.ParamTime `json:"params,omitempty"`
	dom.PageDto
}

func (m *SysLogininforDto) Validator() error {
	if m.PageNum < 1 {
		m.PageNum = 1
	}
	if m.PageSize < 1 {
		m.PageSize = 10
	}
	return nil
}

// SysLogininforExportVo 导出
type SysLogininforExportVo struct {
	// InfoId        int64  `excel:"name:日志ID;" xorm:"pk" `
	LoginTime     string `excel:"name:访问时间;width:25;"`
	UserName      string `excel:"name:用户账号;"`
	Status        string `excel:"name:登录状态;replace:0_成功,1_失败;"`
	Ipaddr        string `excel:"name:登录地址;"`
	LoginLocation string `excel:"name:登录地点;"`
	Browser       string `excel:"name:浏览器;"`
	Os            string `excel:"name:操作系统;"`
	Msg           string `excel:"name:提示消息;"`
}
